package com.ygxsk.carhome.ui.property;

import android.graphics.Color;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.AppUtils;
import com.blankj.utilcode.util.ColorUtils;
import com.blankj.utilcode.util.NetworkUtils;
import com.blankj.utilcode.util.StringUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.bumptech.glide.Glide;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.listener.OnItemClickListener;
import com.gyf.immersionbar.ImmersionBar;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.scwang.smart.refresh.layout.api.RefreshLayout;
import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
import com.tencent.mmkv.MMKV;
import com.trello.rxlifecycle4.android.ActivityEvent;
import com.yanzhenjie.album.Action;
import com.yanzhenjie.album.Album;
import com.yanzhenjie.album.api.widget.Widget;
import com.ygxsk.carhome.R;
import com.ygxsk.carhome.alertview.AlertView;
import com.ygxsk.carhome.constant.ConstantApi;
import com.ygxsk.carhome.constant.ConstantSign;
import com.ygxsk.carhome.constant.ExtraKey;
import com.ygxsk.carhome.constant.ExtraValue;
import com.ygxsk.carhome.enumwrap.CallHistoryBusinessType;
import com.ygxsk.carhome.enumwrap.RepairStatusNumber;
import com.ygxsk.carhome.event.EventRepair;
import com.ygxsk.carhome.listener.DoSomeThingListener;
import com.ygxsk.carhome.listener.DoubleClickListener;
import com.ygxsk.carhome.listener.ErrorParentExtraSingle;
import com.ygxsk.carhome.permission.PermissionSetting;
import com.ygxsk.carhome.response.EvaReapirSatisfactionBean;
import com.ygxsk.carhome.response.PropertyRepairBean;
import com.ygxsk.carhome.response.WorkPoolOneClickRepairHistoryBean;
import com.ygxsk.carhome.retrofit.AddLogUpLoadInfo;
import com.ygxsk.carhome.retrofit.ApiException;
import com.ygxsk.carhome.retrofit.ApiRequestSubListener;
import com.ygxsk.carhome.retrofit.ApiService;
import com.ygxsk.carhome.retrofit.ErrorConsumer;
import com.ygxsk.carhome.retrofit.NetworkManager;
import com.ygxsk.carhome.retrofit.ResponseTransformer;
import com.ygxsk.carhome.ui.ErrorActivity;
import com.ygxsk.carhome.ui.adapter.ImageInDetailAdapter;
import com.ygxsk.carhome.ui.adapter.RepairComBackAdapter;
import com.ygxsk.carhome.ui.adapter.SatisfactionAdapter;
import com.ygxsk.carhome.utils.CommUtils;
import com.ygxsk.carhome.views.MarqueTextView;
import com.ygxsk.carhome.views.MyLinearLayoutManager;
import com.ygxsk.carhome.views.NoScrollGridView;
import com.ygxsk.integrated.retrofit.Parameterkey;

import org.greenrobot.eventbus.EventBus;

import java.util.ArrayList;
import java.util.HashMap;

import butterknife.BindView;
import butterknife.OnClick;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.functions.Consumer;
import okhttp3.MediaType;
import okhttp3.RequestBody;

/*
 * @Author:itchenqi175@163.com
 * @Time:2023/12/29  8:05
 * @Description:报修详情页面
 */
public class RepairdDetailActivity extends ErrorActivity implements ErrorParentExtraSingle {


    @BindView(R.id.refreshLayoutinrepairdetail)
    SmartRefreshLayout refreshLayoutInRepairdetail;

    //报修详情费用中间
    @BindView(R.id.layoutrepairfeesmiddleout)
    LinearLayout layoutRepairFeesMiddle;

    //======================================================================
    //填充维修信息和签字信息底部的一条横线。默认是隐藏的
    @BindView(R.id.textviewlineweixiuhuiinforepair)
    TextView textviewLineWeiXiuHuiinfoRepair;

    //填充评价信息包裹的所有的整个块的布局
    @BindView(R.id.layoutcontentevacomplaterepair)
    LinearLayout layoutContentEvaComplateRepair;

    //底部评价文本内容如果 没有评价内容就是隐藏的
    @BindView(R.id.layoutcontentevatextcompleterepair)
    RelativeLayout layoutContentEvaTextCompleteRepair;

    //评价的具体的文本内容
    @BindView(R.id.textviewevacompleterepair)
    TextView textviewEvaCompleteRepair;


    //综合评价的评价星星内容:2021年10月19日18:37:56废弃 这是废弃以前的代码
    //@BindView(R.id.recyclerviewindetailbottom)
    //RecyclerView recyclerViewInDetailBottom;

    //填充底部的评价信息列表内容:2021年10月19日18:37:56废弃 这是废弃以前的代码
    @BindView(R.id.recyclersatisfactionpingjia)
    RecyclerView recyclerSatisfactionPingJia;

    //工单回访相关的内容================================================================

    //在评价和工单回访的时候中间的间隔
    @BindView(R.id.textviewlinefeedbacktop)
    TextView textviewLineFeedBackTop;

    //工单回访的最外侧包裹的内容
    @BindView(R.id.layoutcontentfeedbackcomplatework)
    LinearLayout layoutContentFeedBackComplateWork;

    //外侧包裹回访内容的：回访的文本 文字内容。
    @BindView(R.id.layoutcontentfeedbacktextcompleterepair)
    RelativeLayout layoutContentFeedBackTextCompleteRepair;

    //填充具体的回访内容文本
    @BindView(R.id.textviewfeedbackcompleterepair)
    TextView textviewFeedBackCompleteRepair;

    //填充工单回访的星星列表内容 :2021年10月19日19:08:14废弃 这是废弃之前的
    //@BindView(R.id.recyclerviewfeedbackrattingbarrepair)
    //RecyclerView recyclerViewFeedBackRattingBarrepair;

    //填充回访工单内的评价回访 综合评价 是物业端员工端的APP添加的评价
    @BindView(R.id.recyclersatisfactionhuifang)
    RecyclerView recyclerSatisfactionHuiFang;

    //======================================================================
    //======================================================================
    //报修类别的图片信息
    @BindView(R.id.imageviewcategorydetail)
    ImageView imageviewCategoryDetail;

    //报修类别类别名称
    @BindView(R.id.textcategorydetail)
    TextView textCategoryDetail;

    //底部用户维修报修内容简介
    @BindView(R.id.textcontentcategorydetail)
    TextView textcontentCategoryDetail;

    //添加上门时间内容  2021年10月15日12:39:05
    @BindView(R.id.textviewhometimeindetail)
    TextView textViewHomeTimeInDetail;

    //可接单人的文本信息
    @BindView(R.id.textviewcanreceiveorder)
    TextView textViewCanReceiveOrder;

    //--------------------------------------------------------------
    //停工待料的原因文本包裹，处于【停工待料状态】才展示，不处于，就不显示
    @BindView(R.id.layoucontshowdownreasoncontent)
    RelativeLayout layouContShowDownReasonContent;

    //是否是停工待料或者挂起的功能的左侧的描述；
    @BindView(R.id.textviewshutdownorhanguporderdes)
    TextView textViewShutDownOrHangUporderDES;

    //停工待料的原因填充
    @BindView(R.id.textviewshutdownorder)
    TextView textViewShutDownOrder;
    //--------------------------------------------------------------

    //添加历史返修记录的内容
    @BindView(R.id.linearlayoutrepaircomback)
    LinearLayout linearLayoutRepairComBack;

    //新增历史返修记录的动态列表
    @BindView(R.id.recyclerviewinrepairdetailcomeback)
    RecyclerView recyclerViewInRepairDetailComeBack;
    //-------------------------------------------------------------

    //=====================================================
    //维修使用零部件的内容
    @BindView(R.id.textpricetotalcurdetail)
    TextView textPriceTotalCurDetail;

    //维修使用零部件的内容
    @BindView(R.id.textviewuseparts)
    MarqueTextView textviewUseParts;

    //维修使用零部件的内容
    @BindView(R.id.textpriceusershoulder)
    TextView textPriceUserShoulder;


    /**
     * 维修师傅的姓名
     */
    //@BindView(R.id.textviewrepairperson)
    //TextView textviewRepairMan;

    //维修人员姓名外侧布局
    @BindView(R.id.layoutcontentmanname)
    RelativeLayout layoutContentManName;

    //用户签字的所有内容
    @BindView(R.id.layoutweixiuqianziwork)
    LinearLayout layoutWeiXiuQianZiWork;

    //关于维修人最后签收的的照片，签字内容
    @BindView(R.id.imageviewqianziwork)
    ImageView imageviewQianziwork;

    //总体满意度======================================================

    /**报修详情底部评价内容*/
    //@BindView(R.id.layoutrepairevabottom)
    //com.balysv.materialripple.MaterialRippleLayout layoutRepairEvaBottom;


    /**总体满意度*/
    //@BindView(R.id.textviewzongtimanyi)
    //TextView textviewZongTimanYi;

    //@BindView(R.id.ratingbarzongti)
    //com.qiangxi.RatingBarView ratingbarZongTi;

    /**总体满意度的文字描述*/
    //@BindView(R.id.textviewzongtimanyides)
    //TextView textviewZongTimanYiDes;
    //======================================================

    /**第一个星星评价文本*/
    //@BindView(R.id.textviewoneindetail)
    //TextView textviewOneInDetail;

    /**第一个星星评价数量*/
    //@BindView(R.id.ratingbaroneindetail)
    //com.qiangxi.RatingBarView ratingbarOneInDetail;

    /**第一个星星评价描述*/
    //@BindView(R.id.textviewoneindetaildes)
    //TextView textviewOneInDetailDes;

    //======================================================

    /**第2个星星评价文本*/
    //@BindView(R.id.textviewtwoindetail)
    //TextView textviewTwoInDetail;

    /**第2个星星评价数量*/
    //@BindView(R.id.ratingbartwoindetail)
    //com.qiangxi.RatingBarView ratingBarTwoInDetail;

    /**第2个星星评价描述*/
    //@BindView(R.id.textviewtwoindetaildes)
    //TextView textviewTwoInDetailDes;


    //======================================================

    /**第3个星星评价文本*/
    //@BindView(R.id.textviewthreeindetail)
    //TextView textviewThreeIndetail;

    /**第3个星星评价数量*/
    //@BindView(R.id.ratingbarthreeindetail)
    //com.qiangxi.RatingBarView ratingbarThreeIndetail;

    /**第3个星星评价描述*/
    //@BindView(R.id.textviewthreeindetaildes)
    //TextView textviewThreeInDetailDes;

    //======================================================

    /**
     * 小区名称
     */
    //@BindView(R.id.textviewxiaoquname)
    //TextView textviewxiaoquname;

    /**
     * 房间编号
     */
    @BindView(R.id.textviewroomcode)
    TextView textviewroomcode;

    /**
     * 报修时间
     */
    @BindView(R.id.textviewroomtime)
    TextView textviewroomtime;

    /**
     * 包裹拨打电话的布局
     */
    @BindView(R.id.layoutcontentphonerightinrepair)
    RelativeLayout layoutContentPhoneRightInRepair;


    /**
     * 联系电话
     */
    @BindView(R.id.textviewroomphone)
    TextView textviewroomphone;

    /**
     * 报修人姓名
     */
    @BindView(R.id.textviewroomname)
    TextView textviewroomname;

    /*完成时限*/
    //@BindView(R.id.textviewcompletiontimelimitwork)
    //TextView textViewCompletionTimeLimitWork;

    /**
     * 报修的状态展示
     */
    @BindView(R.id.textviewstatebaoxiuren)
    TextView textviewstatebaoxiuren;

    /**
     * 报修的详细类别内容
     */
    @BindView(R.id.textviewcategory)
    TextView textviewCategoryName;


    /**
     * 报修的具体的内容
     */
    @BindView(R.id.textviewcontenttext)
    TextView textviewcontenttext;

    /**
     * 这个是根据服务器端有没有报修图片做展示的 没有就不展示隐藏掉,动态展示
     */
    @BindView(R.id.layoutbaoxiupics)
    RelativeLayout layoutBaoXiuPics;

    @BindView(R.id.gridviewpics)
    NoScrollGridView gridviewpics;//用于点击查看大图的内容

    //-----------------------------------------------------------------
    /**
     * 维修信息的最外侧包裹内容【维修前信息和维修后信息】的合集布局
     */
    @BindView(R.id.layoutcontentworkstartorendinfo)
    LinearLayout layoutContentWorkStartOrEndInfo;

    //维修前图片展示布局，仅仅是展示的九宫格布局【仅仅是展示维修前拍照的九宫格】
    @BindView(R.id.layoutpicsworkstartgridviewshow)
    RelativeLayout layoutPicsWorkStartGridViewShow;

    // 维修前展示照片的九宫格
    @BindView(R.id.gridviewpicsworkstart)
    NoScrollGridView gridviewPicsworkStart;

    //-----------------------------------------------------------------
    /**
     * 维修前拍照和维修后拍照中间间隔的一条横线
     */
    @BindView(R.id.textviewhelpbetweengridpics)
    TextView textViewHelpBetweenGridPics;

    /**
     * 维修后展示侧布局,仅仅是展示 维修后拍照的图片信息
     */
    @BindView(R.id.layoutpicsworkendgridviewshow)
    RelativeLayout layoutPicsWorkEndGridViewShow;

    /**
     * 维修后展示照片的九宫格照片内容
     */
    @BindView(R.id.gridviewpicsworkend)
    NoScrollGridView gridviewPicsworkEnd;

    //-----------------------------------------------------------------

    /**
     * 维修人信息
     */
    @BindView(R.id.textviewweixiumanname)
    TextView textviewWeixiuManName;

    /**
     * 维修结果内容文字模块
     */
    @BindView(R.id.layoutcontentweixiuresult)
    LinearLayout layoutContentWeixiuResult;

    /**
     * 维修结果完成或者未完成的状况
     */
    @BindView(R.id.textviewresultcontent)
    TextView textviewResultContent;

    /**
     * 维修结果用时
     */
    @BindView(R.id.textviewresultcompletiontime)
    TextView textviewResultCompletionTime;

    /**
     * 完成结果的描述
     */
    @BindView(R.id.textviewcompletiondes)
    TextView textviewCompletionDes;

    //维修结果完毕之后的三个时间  2021年10月9日 新增的
    /**
     * 接单时间
     */
    @BindView(R.id.textviewordertimework)
    TextView textViewOrderTimeWork;

    /**
     * 开始时间
     */
    @BindView(R.id.textviewstartingtimework)
    TextView textViewStartingTimeWork;


    /**
     * 结束时间
     */
    @BindView(R.id.textviewendtimework)
    TextView textViewEndTimeWork;

    //-----------------------------------------------------------------


    @BindView(R.id.layoutbuttoninrepair)
    LinearLayout layoutButtoninRepair;


//    @BindView(R.id.buttontoacancel)
//    RoundTextView buttontoaCancel;

    //========================================================
    //AlphaAnimation in = new AlphaAnimation(0, 1);
    //AlphaAnimation out = new AlphaAnimation(1, 0);
    //Info mInfo;
    //查看大图的质料内容
    //@BindView(R.id.parentindetail)
    //FrameLayout mParent;
    //@BindView(R.id.bgindetail)
    //View mBg;
    //@BindView(R.id.imgindetail)
    //com.bm.library.PhotoView mPhotoView;
    //========================================================

    /**
     * 可能添加拍照或者上传照片的信息
     */
    private PermissionSetting mSetting;


    //提交的报修的id
    private String repairIdPass;

    //跳转界面的标识:巡检工单池，当前巡检任务，异常事件
    private int jumpFromFlag;

    @OnClick({R.id.buttontoacancel})
    public void ClickInRepairDetail(View view) {

        switch (view.getId()) {
            case R.id.buttontoacancel: {

                if (!DoubleClickListener.isFastDoubleClick()) {

                    CommUtils.checkDialog(mAlertView);
                    //弹窗确认取消报修？
                    mAlertView = new AlertView(getResources().getString(R.string.clearcachecancel), //
                            getResources().getString(R.string.ask_sure_cancel_repair), //
                            getResources().getString(R.string.settingcancel), //取消
                            new String[]{getResources().getString(R.string.clearcachetitlesure)}, //确定
                            null, //
                            RepairdDetailActivity.this, //
                            AlertView.Style.Alert, //
                            new com.ygxsk.carhome.alertview.OnItemClickListener() {//
                                @Override
                                public void onItemClick(Object o, int position) {

                                    if (position != AlertView.CANCELPOSITION) {

                                        methodRepairCancel(repairIdPass);


                                    }
                                }
                            });

                    mAlertView.setCancelable(true).show();//
                }

                break;
            }

            default:
                break;
        }

    }


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mActivityInstance = this;

        //携带报修的状态过来，已完成的报修是没有取消报修按钮的
        processExtraData();

        initloading();

        initViews();

        gainDatas();

        //其他的类似 监听器的，提交一个客户
        //监听单个客户内容
        //列表之内需要向外部广播数据
//        if (!EventBus.getDefault().isRegistered(this)) {
//            EventBus.getDefault().register(this);
//        }

    }

    @Override
    protected int getContentViewId() {
        return R.layout.activity_repaird_detail;
    }

    @Override
    protected void initImmersionBar() {
        super.initImmersionBar();

        ImmersionBar.with(this)//
                .titleBar(R.id.toolbarygxskout)
                .fitsSystemWindows(true)//解决状态栏和布局重叠问题，任选其一，默认为false，当为true时一定要指定statusBarColor()，不然状态栏为透明色，还有一些重载方法
                //.statusBarColor(R.color.colorPrimary)//
                //.navigationBarColor(R.color.colorPrimary)//
                //.keyboardEnable(true)
                .init();

    }

    @Override
    protected void initToolBar(ToolbarHelper toolbarHelper) {

        toolbarHelper.setTitle(getString(R.string.title_repair_detail));
        toolbarHelper.setVersionName(true, AppUtils.getAppVersionName());
        toolbarHelper.setLayoutClose(false, "", null);

        toolbarHelper.setLayoutLeft(true, R.drawable.backicon, new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//              KeyboardUtils.hideSoftInput(mActivityInstance);
                methodBack();
            }
        });

        //这里右上角没有东西的
        toolbarHelper.setLayoutRight(true, 0, "", null);

        //添加潜在客户的按钮
//        toolbarHelper.setLayoutRight(true, 0, "添加", new ClickUtils.OnDebouncingClickListener() {

//            @Override
//            public void onDebouncingClick(View v) {
//
//                //快速双加的限制，
//                // : 2023-07-11 16:18 添加预约维保的信息，到提交表单页面；
//                  Bundle extra_bundle = new Bundle();
////                ActivityUtils.startActivity(extra_bundle, LeadAddSubmitActivity.class);
//            }
//        });

    }

    @Override
    protected void onClickNodata(View v) {

        gainDatas();

    }

    @Override
    protected void initViews() {

        //设置星星的点击事件全是false
        //ratingbarZongTi.setClickable(false);
        //ratingbarOneInDetail.setClickable(false);
        //ratingBarTwoInDetail.setClickable(false);
        //ratingbarThreeIndetail.setClickable(false);

        //填充九宫格图片信息
        /*final ArrayList<ImageGridBean> mDatas = new ArrayList<>();
        for (int index = 0; index < 3; index++) {
            mDatas.add(new ImageGridBean(ConstantApi.imagetUrl7));
        }*/

        refreshLayoutInRepairdetail.setOnRefreshListener(new OnRefreshListener() {
            @Override
            public void onRefresh(@NonNull RefreshLayout refreshLayout) {

                refreshLayout.getLayout().post(new Runnable() {
                    @Override
                    public void run() {

                        gainDatas();

                        refreshLayout.finishRefresh();

                    }
                });

            }
        });

    }

    @Override
    protected void gainDatas() {

        if (NetworkUtils.isConnected()) {

            getServerDatas(repairIdPass);

        } else {
            netWorkError();
        }

    }

    private void getServerDatas(String repairIdPass) {

        HashMap<String, Object> map = new HashMap<>();
        map.put(Parameterkey.shopInfoId, mSession.getShopInfoId());
        map.put(Parameterkey.repairId, repairIdPass);//报修id

        AddLogUpLoadInfo addLogUpLoadInfo = new AddLogUpLoadInfo();
        addLogUpLoadInfo.setActivity(mActivityInstance);
        addLogUpLoadInfo.setWhat(ConstantApi.WHAT_GETREPAIRWEB_URL);//请求数字标识
        addLogUpLoadInfo.setUrlPath(ApiService.getRepairWeb_url);//url地址
        addLogUpLoadInfo.setRequestMethod(ConstantSign.REQUEST_METHOD_POST);//POST 或者 GET
        addLogUpLoadInfo.setToastToUser(true);//展示给用户的标志
        addLogUpLoadInfo.setHashMapParameter(map);

        NetworkManager.getInstance().initRetrofitRxJava()
                .create(ApiService.class)
                .getRepairWeb(RequestBody.create(JSON.toJSONString(map, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue),
                        MediaType.parse(ApiService.HEADER_JSON)))
                .compose(RepairdDetailActivity.this.bindUntilEvent(ActivityEvent.DESTROY))//
                .compose(new ResponseTransformer<>(addLogUpLoadInfo, new ApiRequestSubListener<PropertyRepairBean>() {
                    @Override
                    public void handlerSomeThingNotSuccessDataForItSelf(int what_method, String serverCode, String serverMessage) {
                        super.handlerSomeThingNotSuccessDataForItSelf(what_method, serverCode, serverMessage);
//                        methodNotSuccessData(what_method, serverCode, serverMessage);
                    }
                })).doOnSubscribe(new Consumer<Disposable>() {
                    @Override
                    public void accept(Disposable disposable) throws Throwable {

//                        CommUtils.checkMaterialDialog(materialDialog);
                        method_create_materialDialog(mActivityInstance, ConstantSign.TIPS_LOADING);
                        loadingGone();

                    }
                }).subscribe(new Consumer<PropertyRepairBean>() {
                    @Override
                    public void accept(PropertyRepairBean propertyRepairBean) throws Throwable {

                        CommUtils.checkMaterialDialog(materialDialog);

                        if (propertyRepairBean != null) {

                            method_handler_success_view(propertyRepairBean);

                        } else {

                            fillNullDataView(StringUtils.getString(R.string.nulldatanow), R.drawable.errorsear);

                        }

                    }
                }, new ErrorConsumer() {

                    @Override
                    protected void error(ApiException apiException) {

                        CommUtils.checkMaterialDialog(materialDialog);

                        //页面报错；
                        if (apiException != null) {
                            if (!TextUtils.isEmpty(apiException.getDisplayMessage())) {
                                ToastUtils.showShort(apiException.getDisplayMessage());
                            }
                        }
                    }
                });
    }

    private void method_handler_success_view(PropertyRepairBean propertyRepairBean) {

        //报修类别照片
        Glide.with(RepairdDetailActivity.this)//
                //.asBitmap()//
                .load(propertyRepairBean.getImgUrl().trim())//
                //.transition(withCrossFade())//
                //.apply(RequestOptions.bitmapTransform(new CircleCrop()))//不是圆形图片方形图片
                //.fallback(R.drawable.iconerroryuan)//
                .fallback(R.drawable.iconerroryuan)//
                .error(R.drawable.iconerroryuan)//
                .placeholder(R.drawable.iconerroryuan)//
                .into(imageviewCategoryDetail);

        //报修类别的名称
        CommUtils.setText(textCategoryDetail, propertyRepairBean.getTypeName());

        //===========================================================================
        //报修内容
        CommUtils.setText(textcontentCategoryDetail, propertyRepairBean.getContent().trim());

        //----------------------------------------------------------------------------------------------------------------------------------
        //第一种写法
        //上门时间：
        //CommUtils.setText(textViewHomeTimeInDetail, propertyRepairBean.getServiceTime());

        //第二种写法 2022-2-10 14:49:14 新增的
        if (!TextUtils.isEmpty(propertyRepairBean.getServiceTime())) {
            CommUtils.setText(textViewHomeTimeInDetail, propertyRepairBean.getServiceTime());
            textViewHomeTimeInDetail.setTextColor(ColorUtils.getColor(R.color.black));
        } else {
            CommUtils.setText(textViewHomeTimeInDetail, "无");
            textViewHomeTimeInDetail.setTextColor(ColorUtils.getColor(R.color.graycontent));
        }

        //----------------------------------------------------------------------------------------------------------------------------------
        //2022-1-27 11:46:16 新增需求：添加派单历史人的名称字段，
        //CommUtils.setText(textViewCanReceiveOrder, _workPoolBean.getManagerNames());
        if (!TextUtils.isEmpty(propertyRepairBean.getManagerNames())) {
            CommUtils.setText(textViewCanReceiveOrder, propertyRepairBean.getManagerNames());
            textViewCanReceiveOrder.setTextColor(ColorUtils.getColor(R.color.black));
        } else {
            CommUtils.setText(textViewCanReceiveOrder, "无");
            textViewCanReceiveOrder.setTextColor(ColorUtils.getColor(R.color.graycontent));
        }
        //-----------------------------------------------------------------------------------------------------------
        //----------------------------------------------------------------------------------------------------------------------------------
        //停工待料的原因 也是动态展示的
        String layUpInfo_fromServer = propertyRepairBean.getLayUpInfo();

        if (!TextUtils.isEmpty(layUpInfo_fromServer)) {

//            enum RepairStatusNumber {
//                STATUS_6

            //如果不为空，那么就判断是：挂起原因或者停工待料原因
            if (TextUtils.equals(String.valueOf(propertyRepairBean.getRepairStatus()), RepairStatusNumber.STATUS_6.getIndex())) {//如果是6即是【挂起】;
                //"repairStatus": 6,
                //"repairStatusInfo": "挂起",
                //挂起的原因
                textViewShutDownOrHangUporderDES.setText(StringUtils.getString(R.string.texthangupindetailstring));

            } else if (TextUtils.equals(String.valueOf(propertyRepairBean.getRepairStatus()), RepairStatusNumber.STATUS_5.getIndex())) {//停工待料的状态
                //"repairStatus": 5,
                //"repairStatusInfo": "停工待料",
                //停工待料的原因
                textViewShutDownOrHangUporderDES.setText(StringUtils.getString(R.string.textshutdownindetailstring));

            } else {
                //除了【停工待料】或者【挂起】的其他原因
                textViewShutDownOrHangUporderDES.setText(StringUtils.getString(R.string.textothersuspendindetailstring));

            }

            //如果不是空的，那么就展示停工待料的原因
            layouContShowDownReasonContent.setVisibility(View.VISIBLE);

            textViewShutDownOrder.setText(layUpInfo_fromServer);

        } else {

            layouContShowDownReasonContent.setVisibility(View.GONE);

        }
        //-----------------------------------------------------------------------------------------------------------------
        //-----------------------------------------------------------------------------------------------------------
        //----------------------------------------------------------------------------------------------------------------------------------
        // : 2022/1/30 0030 这里要携带标记，是查看历史记录过来的，如果是查看历史记录过来的，就不要有返修历史列表了。
        if (jumpFromFlag == ExtraValue.VALUE_JUMPFROM_PROPERTY_COMEBACK) {
            CommUtils.setViewGone(linearLayoutRepairComBack);
        } else {
            methodHandler_Repair_ComeBack(propertyRepairBean);
        }
        //--------------------------------------------------------------------------------------------------------------------
        //--------------------------------------------------------------------------------------------------------------------

        //小区名称 -2018/12/19 这里小区名称是没有的
        //CommUtils.setText(textviewxiaoquname, propertyRepairBean.getCommunityName().trim());

        //房间编号
        CommUtils.setText(textviewroomcode, propertyRepairBean.getHouseNo());

        //报修时间
        CommUtils.setText(textviewroomtime, propertyRepairBean.getCreateTime());

        //联系电话
        CommUtils.setText(textviewroomphone, propertyRepairBean.getUserPhone().trim());

        //拨打电话的布局内容
        methodPhone(propertyRepairBean.getUserPhone());

        //报修人
        CommUtils.setText(textviewroomname, propertyRepairBean.getUserName().trim());

        //报修状态
        CommUtils.setText(textviewstatebaoxiuren, propertyRepairBean.getRepairStatusInfo());

        //报修类别
        CommUtils.setText(textviewCategoryName, propertyRepairBean.getTypeName().trim());

        //类别下的 【完成时限】
        //CommUtils.setText(textViewCompletionTimeLimitWork, propertyRepairBean.getTimeLimitWC() + "  天");

        //报修投诉内容
        CommUtils.setText(textviewcontenttext, propertyRepairBean.getContent().trim());

        //====================================================================================
        //现场照片
        ArrayList<String> imglist = propertyRepairBean.getImglist();//图片列表
        //imglist.add(ConstantApi.imagetUrl7);//测试数据
        //imglist.add(ConstantApi.imagetUrl7);
        //imglist.add(ConstantApi.imagetUrl7);
        //这一块逻辑还有个控制方法就是两套布局，如果有图片使用第一套布局，如果没有图片使用第二套布局。
        //CommUtils.setText(textviewRepairMan,propertyRepairBean.getServiceman());

        if (imglist != null && (!imglist.isEmpty())) {

            CommUtils.setViewVisible(layoutBaoXiuPics);
            //九宫格展示,真实展示的用户反馈的拍照 是可以在这里直接展示的。
            initGridViewReal(imglist, gridviewpics);

        } else {
            //九宫格隐藏2018/11/27 以前代码
            //CommUtils.setViewInvisible(layoutbaoxiupics);
            CommUtils.setViewGone(layoutBaoXiuPics);
        }

        //维修费用的内容==================================================================================
        //本次维修费用--这里如果是维修完成的状态，那么是一定要展示的。
//        String stringPriceTotalCurDetail = ConstantApi.SYMBOL + propertyRepairBean.getServiceCost();
        String stringPriceTotalCurDetail = MMKV.defaultMMKV().decodeString(ConstantSign.P_CURRENCYSYMBOL, getResources().getString(R.string.yangjiaocurrencysymbol)) + propertyRepairBean.getServiceCost();
        //使用零部件信息
        String stringUseParts = propertyRepairBean.getServiceExplain();//仅仅是一个备注内容
        //用户承担费用
        String stringPriceUserShoulder = MMKV.defaultMMKV().decodeString(ConstantSign.P_CURRENCYSYMBOL, getResources().getString(R.string.yangjiaocurrencysymbol)) + propertyRepairBean.getMoney();

        CommUtils.setText(textPriceTotalCurDetail, stringPriceTotalCurDetail);
        CommUtils.setText(textviewUseParts, stringUseParts);
        CommUtils.setText(textPriceUserShoulder, stringPriceUserShoulder);

        //用户对维修师傅的评价内容============================================================================

        //报修的状态、控制取消报修是否隐藏展示。
        //2019年的  维修状态：0未处理,10处理中,20处理完,21已回访,22已评价,30已取消

        //2020年02月16日的维修状态
        //更新一下：0未处理 1已接单 10处理中 20处理完 22已评价  30已取消
        //回访单独拿出来作为一个字段 :isFeedBack   0未回访  1已回访
        //2022-4-26 新增的【挂起功能】"repairStatus": 6, "repairStatusInfo": "挂起",
        //【停工待料】和挂起类似，只是挂起是20天期限，停工待料是7天；"repairStatus":5, "repairStatusInfo":"停工待料",
        //2023年12月29日 为了改动为枚举方便，我改为了string串。
        String repairState = propertyRepairBean.getRepairStatus();

        //是否评价的状态。  ture 是已经评价，  false 是未评价
        boolean isEvaed = propertyRepairBean.isEvaluate();
        //LogUtils.d("itchen----是否已评价----->isEvaed=" + isEvaed);
        // feedBack  代表是否完成回访--废弃了
        //boolean feedBack = propertyRepairBean.isEvaluate();
        //LogUtils.d("itchen----是否已回访----->feedBack=" + feedBack);

        //是否是已经回访的 工单
        int isFeedBack = propertyRepairBean.getIsFeedBack();
        //LogUtils.d("itchen----是否已回访----->isFeedBack="+isFeedBack);
        //维修人姓名
        //String reapirMainName = propertyRepairBean.getServiceman();
        //评价星星内容
        //ArrayList<RatingBarBean> datas = propertyRepairBean.getEvaluateList();
        //------------------------------------------------------------------------------
        //第1：处理维修费用信息
//        if (repairState == ExtraValue.REPAIRSTATUS_COMPLETE//已完成  已回访 但是未评价。
//                || repairState == ExtraValue.REPAIRSTATUS_EVALUATIONED//已评价
//                || repairState == ExtraValue.REPAIRSTATUS_RETURNVISIT) {//已回访--已回访一定是处理完毕才有已回访状态

        if (TextUtils.equals(repairState, RepairStatusNumber.STATUS_20.getIndex())//已完成  已回访 但是未评价。
                || TextUtils.equals(repairState, RepairStatusNumber.STATUS_22.getIndex())//已评价
                || TextUtils.equals(repairState, RepairStatusNumber.STATUS_21.getIndex())) {//已回访--已回访一定是处理完毕才有已回访状态

            //维修信息：维修前拍照 和 维修后拍照 的信息。
            CommUtils.setViewVisible(layoutContentWorkStartOrEndInfo);

            //维修人员姓名布局 展开---而且填充维修人员 姓名。
            CommUtils.setViewVisible(layoutContentManName);

            //----------------------------------------------------------------------------
            //因为是多个拍照: 维修前拍照，的九宫格布局展示
            ArrayList<String> berforeImageList = propertyRepairBean.getBeforeImgList();

            //维修前拍照信息 展示，如果有就展示出来，没有就隐藏掉
            if (berforeImageList != null && !berforeImageList.isEmpty()) {

                //展示维修前拍照，九宫格信息
                CommUtils.setViewVisible(layoutPicsWorkStartGridViewShow);

                //LogUtils.d("itchen------->开始执行 展示维修前  拍照九宫格");
                //做维修前拍照的展示: 2022-2-22 11:33:29 这里仅仅是控制 布局的【显示】或者【隐藏】，那么不必在这一步就 做 内容填充，和下边有重复。
                //initGridViewBerfore(berforeImageList, gridviewPicsworkStart);
            } else {
                CommUtils.setViewGone(layoutPicsWorkStartGridViewShow);
            }

            //----------------------------------------------------------------------------
            //----------------------------------------------------------------------------
            //维修后拍照信息：维修后拍照
            ArrayList<String> afterImgList = propertyRepairBean.getAfterImgList();

            //维修后拍照信息 展示
            if (afterImgList != null && !afterImgList.isEmpty()) {

                CommUtils.setViewVisible(textViewHelpBetweenGridPics);
                CommUtils.setViewVisible(layoutPicsWorkEndGridViewShow);

                //LogUtils.d("itchen------->开始执行 展示维修后  拍照 九宫格");
                //做维修后 拍照的展示： 2022-2-22 11:33:29 这里仅仅是控制 布局的【显示】或者【隐藏】，那么不必在这一步就 做 内容填充，和下边有重复。
                //initGridViewAfter(afterImgList, gridviewPicsworkEnd);

            } else {
                CommUtils.setViewGone(textViewHelpBetweenGridPics);
                CommUtils.setViewGone(layoutPicsWorkEndGridViewShow);
            }

            //----------------------------------------------------------------------------

            //维修的时间信息，完成情况是 显示的
            CommUtils.setViewVisible(layoutContentWeixiuResult);

            //维修签字信息 要让他展示出来
            CommUtils.setViewVisible(layoutWeiXiuQianZiWork);

            //已完成或者已评价都展示费用，其他情况均不展示费用，费用信息是在【签字】的底部的
            CommUtils.setViewVisible(layoutRepairFeesMiddle);
            //----------------------------------------------------------------------------
            //----------------------------------------------------------------------------

            //2020年3月20日09:50:23 评价如果有评价就展示，没有就不展示
            if (isEvaed) {
                CommUtils.setViewVisible(layoutContentEvaComplateRepair);
            } else {
                CommUtils.setViewGone(layoutContentEvaComplateRepair);
            }

            //----------------------------------------------------------------------------

            if (isFeedBack == 1) {//0未回访  1已回访
                CommUtils.setViewVisible(layoutContentFeedBackComplateWork);
            } else if (isFeedBack == 0) {//未回访
                //未回访的隐藏
                //如果未回访， 那么回访内容更是没有
                CommUtils.setViewGone(layoutContentFeedBackComplateWork);
            }
            //----------------------------------------------------------------------------
            //这种情况是肯定要隐藏【取消报修】
            CommUtils.setViewGone(layoutButtoninRepair);

            //----------------------------------------------------------------------------

        } else if (TextUtils.equals(repairState, RepairStatusNumber.STATUS_0.getIndex())) {//未处理

            //未处理的时候，维修信息是没有的 这里也包括了维修前拍照+维修后拍照+维修人信息+签字
            CommUtils.setViewGone(layoutContentWorkStartOrEndInfo);

            //未处理和已取消 是铁定不展示【费用】的。
            CommUtils.setViewGone(layoutRepairFeesMiddle);

            //2022-2-10 16:07:23 这里【取消报修】是有条件的，判断是否是返修工单
            if (jumpFromFlag == ExtraValue.VALUE_JUMPFROM_PROPERTY_COMEBACK) {
                CommUtils.setViewGone(layoutButtoninRepair);
            } else {
                CommUtils.setViewVisible(layoutButtoninRepair);
            }

            //维修人员信息是隐藏的
            CommUtils.setViewGone(layoutContentManName);

        } else if (repairState == RepairStatusNumber.STATUS_30.getIndex()//已取消
                || repairState == RepairStatusNumber.STATUS_10.getIndex()) {//处理中

            //未处理的时候，维修信息是没有的
            CommUtils.setViewGone(layoutContentWorkStartOrEndInfo);


            //未处理和已取消 是铁定不展示【费用】的。
            CommUtils.setViewGone(layoutRepairFeesMiddle);
            //评价信息是没有的

            //回访信息是没有的
            CommUtils.setViewGone(layoutContentFeedBackComplateWork);


            //【取消报修】也是肯定没有
            CommUtils.setViewGone(layoutButtoninRepair);

        } else {
            CommUtils.setViewGone(layoutRepairFeesMiddle);
        }

        //-----------------------------------------------------------------------------------------------------------
        //签字信息 单独做一块处理
        methodQianZi(propertyRepairBean);

        //=================================================================================
        //=================================================================================
        //如果【维修信息界面】是可见的话。里边的内容才能被处理，这里内容很长
        if (layoutContentWorkStartOrEndInfo.getVisibility() == View.VISIBLE) {

            //维修人信息:String reapirMainName = propertyRepairBean.getServiceman();
            //=================================================================================
            if (layoutContentManName.getVisibility() == View.VISIBLE) {

                if (!TextUtils.isEmpty(propertyRepairBean.getServiceman())) {
                    CommUtils.setText(textviewWeixiuManName, propertyRepairBean.getServiceman());
                }

            }

            //=================================================================================
            //=================================================================================

            //维修 之前 工程人员拍照
            if (layoutPicsWorkStartGridViewShow.getVisibility() == View.VISIBLE) {

                ArrayList<String> beforeImgList = propertyRepairBean.getBeforeImgList();

                //两个测试内容
                //imglistStart.add(ConstantApi.IMAGEVIEW_URL1);
                //imglistStart.add(ConstantApi.IMAGEVIEW_URL2);

                if (beforeImgList != null && (!beforeImgList.isEmpty())) {

                    CommUtils.setViewVisible(layoutPicsWorkStartGridViewShow);
                    //九宫格展示
                    initGridViewBerfore(beforeImgList, gridviewPicsworkStart);

                } else {
                    //九宫格隐藏2018/11/27 以前代码
                    CommUtils.setViewGone(layoutPicsWorkStartGridViewShow);
                }

            }

            //=================================================================================

            //维修之后照片，维修完毕维修时候自己上传的照片
            if (layoutPicsWorkEndGridViewShow.getVisibility() == View.VISIBLE) {

                ArrayList<String> afterImgList = propertyRepairBean.getAfterImgList();

                //测试图片内容
                //imglistEnd.add("http://222.222.17.184:8881/resource/image/repairImg/20190509/2019050917294266093486_720x1280.jpg");
                //imglistEnd.add("http://222.222.17.184:8881/resource/image/repairImg/20190509/2019050917294303496305_720x1280.jpg");

                //维修后信息的拍照信息=========================================================================
                if (afterImgList != null && (!afterImgList.isEmpty())) {

                    CommUtils.setViewVisible(textViewHelpBetweenGridPics);
                    CommUtils.setViewVisible(layoutPicsWorkEndGridViewShow);

                    //九宫格展示
                    initGridViewAfter(afterImgList, gridviewPicsworkEnd);

                } else {
                    //九宫格隐藏2018/11/27 以前代码
                    CommUtils.setViewGone(textViewHelpBetweenGridPics);
                    CommUtils.setViewGone(layoutPicsWorkEndGridViewShow);

                }
            }

            //2022-2-22 11:38:26 因为在上边有重复代码，拿到这里只写一次即可
            if (layoutContentWeixiuResult.getVisibility() == View.VISIBLE) {

                //维修情况的三个描述信息
                //第一个维修结果：finishsituation
                String workResultContent = propertyRepairBean.getFinishsituation();  //"已完成-测试";
                CommUtils.setText(textviewResultContent, workResultContent);

                //第二个是维修用时
                String workResultTime = propertyRepairBean.getRepairTime();         //"30分钟-测试";
                CommUtils.setText(textviewResultCompletionTime, workResultTime);

                //第三个是维修结果
                String workCompletiondes = propertyRepairBean.getServiceExplain();//"测试测试测试测试";
                CommUtils.setText(textviewCompletionDes, workCompletiondes);

                //----------------------------------------------------------------------------------------
                //2021年10月9日新增 三个时间 参考乐软：
                //接单时间：
                String orderTimeWork = propertyRepairBean.getMeetTime();
                CommUtils.setText(textViewOrderTimeWork, orderTimeWork);

                //开始时间：应该是
                String startingTimeWork = propertyRepairBean.getBeginTime();
                CommUtils.setText(textViewStartingTimeWork, startingTimeWork);

                //结束时间
                String finishTime = propertyRepairBean.getFinishTime();
                CommUtils.setText(textViewEndTimeWork, finishTime);

                //meetTime：接单时间   beginTime：开始时间    finishTime：完成时间
                //meetTime：接单时间   beginTime：开始时间    finishTime：完成时间

                //----------------------------------------------------------------------------------------

            }

        } else {
            //维修信息是 被隐藏的了
            //LogUtils.d("itchen------>维修信息是 被隐藏的了");

        }

        //-----------------------------------------------------------------------------------------------------------
        //-----------------------------------------------------------------------------------------------------------
        //-----------------------------------------------------------------------------------------------------------

        //------------------------------------------------------------------------------------------------------------
        //------------------------------------------------------------------------------------------------------------
        //------------------------------------------------------------------------------------------------------------
        //-关于评价的整体模块-----------------------------------------------------------------------------
        //评价星星内容:在这里没有什么用。
        //2021年10月19日18:31:26 评价的星星不要。废弃
        //ArrayList<RatingBarBean> evaluateList = propertyRepairBean.getEvaluateList();

        //String evaContent = "服务质量：5分；服务态度：5分；及时程度：5分；[其他][服务棒][印象不错]评价内容：好";
        //String evaContent = propertyRepairBean.getEvaTextContent();
        String evaContent = propertyRepairBean.getEvaluateContent();
        //2021年10月19日18:33:02 的综合评价的内容
        ArrayList<EvaReapirSatisfactionBean> satisfactionListForPJ = propertyRepairBean.getSatisfactionListForPJ();
        //填充适配器的内容
        methodSatisfactionListForPJ(isEvaed,
                satisfactionListForPJ,//
                evaContent);//
        //------------------------------------------------------------------------------------------------------------
        //------------------------------------------------------------------------------------------------------------

        //-关于回访的整体模块-------------------------------------------------------------------------------------------
        //2021年10月19日18:31:42 回访的星星也不要。
        //关于那个评价的列表内容，动态的  有评价星星的
        //ArrayList<RatingBarBean> feedBackList = propertyRepairBean.getFeedBackList();
        //------------------------------------------------------------------------------------------------------------
        //2021年10月19日18:59:47 回访的内容
        ArrayList<EvaReapirSatisfactionBean> satisfactionListForHF = propertyRepairBean.getSatisfactionListForHF();
        String feedbackContent = propertyRepairBean.getFeedBackContent();
        methodsatisfactionListForHF(isFeedBack,//
                feedbackContent, //
                satisfactionListForHF);//
        //------------------------------------------------------------------------------------------------------------------
        //------------------------------------------------------------------------------------------------------------------

    }

    /**
     * 物业回访的一些回访的综合满意度评价
     *
     * @param isFeedback      是否是已会放过
     * @param feedbackContent 回访的内容
     * @param mDatas          当前回访的评价的列表内容
     */
    private void methodsatisfactionListForHF(int isFeedback,//
                                             String feedbackContent,//
                                             ArrayList<EvaReapirSatisfactionBean> mDatas) {

        if (layoutContentFeedBackComplateWork.getVisibility() == View.VISIBLE) {

            //如果有回访的内容，那么帮助的灰色布局线条应该是 可展示的。
            textviewLineFeedBackTop.setVisibility(View.VISIBLE);

            //报修已经完成：可能已经回访，可能未回访。
            //回访信息。 如果已经回访，那么底部的评价星星列表是必须展示的，顶部标签和回访文本内容可能
            if (isFeedback == 1) {

                if (!TextUtils.isEmpty(feedbackContent)) {//回访的内容也不是空的

                    CommUtils.setViewVisible(layoutContentFeedBackTextCompleteRepair);//
                    CommUtils.setViewVisible(textviewFeedBackCompleteRepair);//

                    textviewFeedBackCompleteRepair.setText(feedbackContent);//

                } else {

                    //LogUtils.d("itchen--->回访的内容是空的");
                    CommUtils.setViewGone(layoutContentFeedBackTextCompleteRepair);//
                    CommUtils.setViewGone(textviewFeedBackCompleteRepair);//
                }

                //因为只要是已回访了，这个必然是展示的，因为做星星评价是必须的。其实默认也是展示的
                //CommUtils.setViewVisible(recyclerSatisfactionHuiFang);

                //填充九宫格内容
                //GridLayoutManager layoutManagerSatisfaction = new GridLayoutManager(this, 3);
                //layoutManagerSatisfaction.setOrientation(LinearLayoutManager.VERTICAL);
                //recyclerSatisfactionHuiFang.setLayoutManager(layoutManagerSatisfaction);

                //2022-2-24 19:01:07 改造
                recyclerSatisfactionHuiFang.setLayoutManager(new MyLinearLayoutManager(mActivityInstance));
                recyclerSatisfactionHuiFang.clearAnimation();

                //普通呈现一个列表即可，没有其他事件内容.
                //物业项目不要报修人的姓名。仅仅展示评价信息,暂时不添加头部。
                //ratingbarInWorkAdapter.addHeaderView(getHeadView(context, recyclerViewIndetailBottomwork,"评价信息"));
                SatisfactionAdapter satisfactionAdapter = new SatisfactionAdapter(R.layout.satisfactionadapter, mDatas);
//                satisfactionAdapter.closeLoadAnimation();

                recyclerSatisfactionHuiFang.setAdapter(satisfactionAdapter);
                satisfactionAdapter.notifyDataSetChanged();


            } else if (isFeedback == 0) {

                CommUtils.setViewGone(textviewLineWeiXiuHuiinfoRepair);

                //这个评价内容都隐藏掉
                CommUtils.setViewGone(layoutContentEvaComplateRepair);
                //评价顶部九宫格
                //CommUtils.setViewGone(recyclerViewEvaNineWork);
                //评价文本内容隐藏
                CommUtils.setViewGone(layoutContentEvaTextCompleteRepair);
                //评价星星隐藏
                CommUtils.setViewGone(recyclerSatisfactionHuiFang);

            }

        } else {
            CommUtils.setViewGone(textviewLineFeedBackTop);
        }

    }

    /**
     * 2021年10月19日18:56:17新写的内容
     *
     * @param isEvaed     是否是已经评价的内容
     * @param mdatas      填充数据的列表内容
     * @param _evaContent 添加评价的内容
     */
    private void methodSatisfactionListForPJ(boolean isEvaed,//
                                             ArrayList<EvaReapirSatisfactionBean> mdatas,//
                                             String _evaContent) {

        if (layoutContentEvaComplateRepair.getVisibility() == View.VISIBLE) {

            //评价信息。
            if (isEvaed) {

                //是已经评价过的信息
                //CommUtils.setViewVisible(textviewLineWeiXiuHuiinfoRepair);

                //回访评价的内容
                if (!TextUtils.isEmpty(_evaContent)) {

                    CommUtils.setViewVisible(layoutContentEvaTextCompleteRepair);//
                    CommUtils.setViewVisible(textviewEvaCompleteRepair);//
                    textviewEvaCompleteRepair.setText(_evaContent);

                } else {
                    CommUtils.setViewGone(layoutContentEvaTextCompleteRepair);
                    CommUtils.setViewGone(textviewEvaCompleteRepair);//
                }

                //这一步有点多余
                //CommUtils.setViewVisible(recyclerSatisfactionPingJia);

                //填充九宫格内容
                //GridLayoutManager layoutManagerSatisfaction = new GridLayoutManager(mActivityInstance, 3);
                //layoutManagerSatisfaction.setOrientation(LinearLayoutManager.VERTICAL);
                //2018年11月27日重新做更改
                //recyclerSatisfactionPingJia.setLayoutManager(layoutManagerSatisfaction);

                //2022-2-24 18:59:48 改为是竖直方向的列表
                recyclerSatisfactionPingJia.setLayoutManager(new MyLinearLayoutManager(mActivityInstance));
                recyclerSatisfactionPingJia.clearAnimation();

                //普通呈现一个列表即可，没有其他事件内容
                SatisfactionAdapter satisfactionAdapter = new SatisfactionAdapter(R.layout.satisfactionadapter, mdatas);
                //新包没有该方法
//              satisfactionAdapter.closeLoadAnimation();

                recyclerSatisfactionPingJia.setAdapter(satisfactionAdapter);
                satisfactionAdapter.notifyDataSetChanged();

            } else {

                //签字 和 评价中间的 一条横线是隐藏掉的
                //CommUtils.setViewGone(textviewLineWeiXiuHuiinfoRepair);

                //整个评价内容是要被隐藏掉的
                CommUtils.setViewGone(layoutContentEvaTextCompleteRepair);

                //评价文本隐藏
                CommUtils.setViewGone(layoutContentEvaTextCompleteRepair);

                //评价星星列表隐藏
                CommUtils.setViewGone(recyclerSatisfactionPingJia);

            }

        }

    }

    /**
     * 处理一键返修的工单内容
     *
     * @param _propertyRepairBean
     */
    private void methodHandler_Repair_ComeBack(PropertyRepairBean _propertyRepairBean) {

        //新增：工单的历史返修列表。
        ArrayList<WorkPoolOneClickRepairHistoryBean> repairReworkList = _propertyRepairBean.getRepairReworkList();//

        if (repairReworkList != null && !repairReworkList.isEmpty()) {

            CommUtils.setViewVisible(linearLayoutRepairComBack);

            //适配器内容，并且填充适配器.
            //填充recyclerView
            LinearLayoutManager layoutManager = new MyLinearLayoutManager(mActivityInstance.getBaseContext());
            recyclerViewInRepairDetailComeBack.setLayoutManager(layoutManager);

            RepairComBackAdapter repairComBackAdapter = new RepairComBackAdapter(R.layout.repairdetailcomebackadapter, repairReworkList);

            if (repairComBackAdapter != null) {
//                repairComBackAdapter.closeLoadAnimation();
                if (recyclerViewInRepairDetailComeBack != null) {
                    recyclerViewInRepairDetailComeBack.setAdapter(repairComBackAdapter);
                    recyclerViewInRepairDetailComeBack.clearAnimation();
                    repairComBackAdapter.notifyDataSetChanged();
                }

                repairComBackAdapter.setOnItemClickListener(new OnItemClickListener() {
                    @Override
                    public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {

                        //要拿到这个历史返修单子的编号
                        WorkPoolOneClickRepairHistoryBean workPoolBeanInComeBackAdapter = (WorkPoolOneClickRepairHistoryBean) adapter.getItem(position);

                        if (workPoolBeanInComeBackAdapter != null) {

                            //这是直接再次进入 报修或者工单详情的。
                            Bundle bundle_extra_comeback = new Bundle();
                            bundle_extra_comeback.putInt(ExtraKey.EXTRA_JUMPFROM_WHERE, ExtraValue.VALUE_JUMPFROM_PROPERTY_COMEBACK);
                            //携带 该工单维修的id 信息
                            bundle_extra_comeback.putString(ExtraKey.EXTRA_REPAIR_REPAIRID, String.valueOf(workPoolBeanInComeBackAdapter.getRepairId()));
                            //携带 该工单的状态
                            //bundle_extra.putString(ConstantApi.EXTRA_WORK_STATE, String.valueOf(workPoolBeanInComeBackAdapter.getRepairStatus()));

                            //LogUtils.d("itchen--->携带到工单详情的数据 repairId=" + workPoolBeanInComeBackAdapter.getRepairId() + //
                            //"---工单编号 repairNo=" + workPoolBeanInComeBackAdapter.getRepairNo());//
                            //itchen--->携带到工单详情的数据 repairId=21475---工单编号 repairNo=GD-2022-01-27-0002
                            ActivityUtils.startActivity(bundle_extra_comeback, RepairdDetailActivity.class);

                        } else {
                            //LogUtils.d("itchen----workPoolBeanInComeBackAdapter 是空值。");
                        }

                    }
                });
            }

        } else {
            CommUtils.setViewGone(linearLayoutRepairComBack);
        }

    }

    /**
     * 添加拨打电话的功能
     */
    private void methodPhone(String userPhone) {

        if (!TextUtils.isEmpty(userPhone)) {

            layoutContentPhoneRightInRepair.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {

//                    CommUtils.methodPhone(mActivityInstance, userPhone, mAlertView, mSetting);
                    clickButton_toCallPhone(mActivityInstance, userPhone, CallHistoryBusinessType.BUSINESSTYPE_2.getIndex());


                }
            });

        }
    }

    /**
     * 报修的维修后拍照
     *
     * @param mDatasImageList
     * @param _gridViewPicsWork
     */
    private void initGridViewAfter(ArrayList<String> mDatasImageList, NoScrollGridView _gridViewPicsWork) {

        ImageInDetailAdapter imageInDetailAdapter = new ImageInDetailAdapter(RepairdDetailActivity.this, mDatasImageList);

        //填充适配器内容
        if (_gridViewPicsWork != null) {

            _gridViewPicsWork.setAdapter(imageInDetailAdapter);
            imageInDetailAdapter.notifyDataSetChanged();

            //点击查看大图的设计。。
            _gridViewPicsWork.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                    //临时加载
                    /*ArrayList<String> arrayList = new ArrayList<>();
                     for (int index = 0; index < mDatas.size(); index++) {
                     arrayList.add(mDatas.get(position).getImageUrlBig());
                    }*/

                    //单独的图片内容。
                    //2018年03月17日重新修改
                    Album.gallery(mActivityInstance)//
                            //.requestCode(2)//
                            .checkedList(mDatasImageList)//
                            .currentPosition(position)//记录位置？
                            //.navigationAlpha(80)//
                            .checkable(false)//是否出现选择对勾内容//
                            .widget(//
                                    Widget.newLightBuilder(mActivityInstance)///
                                            .statusBarColor(Color.WHITE)
                                            .title(getResources().getString(R.string.click_look_big_image))//
                                            .build()//
                            )
                            .onResult(new Action<ArrayList<String>>() {
                                @Override
                                public void onAction(@NonNull ArrayList<String> result) {
                                    //  If it is optional, here you can accept the results of user selection.
                                }
                            })
                            .start();

                }
            });
        }
    }

    /**
     * 报修的维修前拍照
     *
     * @param mDatasImageList
     * @param _gridviewpicswork
     */
    private void initGridViewBerfore(ArrayList<String> mDatasImageList, NoScrollGridView _gridviewpicswork) {

        ImageInDetailAdapter imageInDetailAdapter = new ImageInDetailAdapter(mActivityInstance, mDatasImageList);

        //填充适配器内容
        if (_gridviewpicswork != null) {

            _gridviewpicswork.setAdapter(imageInDetailAdapter);
            imageInDetailAdapter.notifyDataSetChanged();


            //点击查看大图的设计。。
            _gridviewpicswork.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                    //临时加载
                    /*ArrayList<String> arrayList = new ArrayList<>();
                     for (int index = 0; index < mDatas.size(); index++) {
                     arrayList.add(mDatas.get(position).getImageUrlBig());
                    }*/

                    //单独的图片内容。
                    //2018年03月17日重新修改
                    Album.gallery(mActivityInstance)//
                            //.requestCode(2)//
                            .checkedList(mDatasImageList)//
                            .currentPosition(position)//记录位置？
                            //.navigationAlpha(80)//
                            .checkable(false)//是否出现选择对勾内容//
                            .widget(//
                                    Widget.newLightBuilder(mActivityInstance)///
                                            .statusBarColor(Color.WHITE)
                                            .title(getResources().getString(R.string.click_look_big_image))//
                                            .build()//
                            )
                            .onResult(new Action<ArrayList<String>>() {
                                @Override
                                public void onAction(@NonNull ArrayList<String> result) {
                                    //  If it is optional, here you can accept the results of user selection.
                                }
                            })
                            .start();

                }
            });
        }
    }

    /**
     * @date 2018/3/30 0030
     * @auther itchenqi
     * @description 填充现场的真实照片, 拍照业主的九宫格数据内容。
     */
    private void initGridViewReal(final ArrayList<String> mDatasImageList, NoScrollGridView _gridviewpicswork) {

        ImageInDetailAdapter imageInDetailAdapter = new ImageInDetailAdapter(mActivityInstance, mDatasImageList);

        if (_gridviewpicswork != null) {

            //填充适配器内容
            _gridviewpicswork.setAdapter(imageInDetailAdapter);
            imageInDetailAdapter.notifyDataSetChanged();

            //点击查看大图的设计。。
            _gridviewpicswork.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                    //临时加载
                /*ArrayList<String> arrayList = new ArrayList<>();
                for (int index = 0; index < mDatas.size(); index++) {
                    arrayList.add(mDatas.get(position).getImageUrlBig());
                }*/

                    //单独的图片内容。
                    //2018年03月17日重新修改
                    Album.gallery(RepairdDetailActivity.this)//
                            //.requestCode(2)//
                            .checkedList(mDatasImageList)//
                            .currentPosition(position)//记录位置？
                            //.navigationAlpha(80)//
                            .checkable(false)//是否出现选择对勾内容//
                            .widget(Widget.newLightBuilder(RepairdDetailActivity.this)///
                                    .statusBarColor(Color.WHITE)
                                    .title(getResources().getString(R.string.click_look_big_image))//
                                    .build())//
                            .onResult(new Action<ArrayList<String>>() {
                                @Override
                                public void onAction(@NonNull ArrayList<String> result) {
                                    //  If it is optional, here you can accept the results of user selection.

                                }//
                            })
                            .start();//

                    //原始代码一整块。
                    //查看大图设计
                /*PhotoView pItemView = (PhotoView) view;
                mInfo = pItemView.getInfo();
                String imageUrl = mDatas.get(position).getImageUrlBig();
                GlideApp.with(RepairdDetailActivity.this)
                        .asBitmap()
                        .load(imageUrl)
                        .into(new BitmapImageViewTarget(mPhotoView) {
                            @Override
                            protected void setResource(Bitmap resource) {
                                super.setResource(resource);
                                //圆角图片代码。
                            }
                        });
                mBg.startAnimation(in);
                mBg.setVisibility(View.VISIBLE);
                mParent.setVisibility(View.VISIBLE);
                mPhotoView.animaFrom(mInfo);*/

                }
            });
        }

    }

    /**
     * 客户签字的单独小模块拿出
     */
    private void methodQianZi(PropertyRepairBean _propertyRepairBean) {

        if (layoutWeiXiuQianZiWork.getVisibility() == View.VISIBLE) {

            //维修的人员的签收图片信息内容==可能放在维修结果的底下======================
            String imageViewcompleted = _propertyRepairBean.getTenantsautographimage();

            //只有维修完了用户才能签字
            //  /storage/emulated/0/Pictures/1577604046314.jpg
            //String imageViewcompleted = "/storage/emulated/0/Pictures/1577604046314.jpg";//给一个错误的地址，让展示默认加载的图片信息。

            if (!TextUtils.isEmpty(imageViewcompleted)) {

                layoutWeiXiuQianZiWork.setVisibility(View.VISIBLE);

                //使用glide 加载图片的话 不论是否联网 都是直接填充路径的内容。

                //---------------------------------------------------------------------------------------------
                if (!mActivityInstance.isDestroyed()) {
                    //报修类别照片
                    Glide.with(RepairdDetailActivity.this.getBaseContext())//
                            //.asBitmap()//
                            .load(imageViewcompleted)//
                            //.transition(withCrossFade())//
                            //.apply(RequestOptions.bitmapTransform(new CircleCrop()))
                            .fallback(R.drawable.icon_errorfang)//
                            .error(R.drawable.icon_errorfang)//
                            .placeholder(R.drawable.icon_errorfang)//
                            .into(imageviewQianziwork);
                } else {
                    //LogUtils.d("itchen---Picture loading failed,activity is Destroyed");
                }

                //---------------------------------------------------------------------------------------------
                imageviewQianziwork.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {

                        CommUtils.methodBigImageView(mActivityInstance, imageViewcompleted);

                    }
                });

            } else {//如果没有签字照片 该模块整块隐藏掉。
                layoutWeiXiuQianZiWork.setVisibility(View.GONE);
            }
        }

    }

    //取消报修的接口
    private void methodRepairCancel(String _repairId) {

        HashMap<String, Object> map = new HashMap<>();
        map.put(Parameterkey.shopInfoId, mSession.getShopInfoId());
        map.put(Parameterkey.repairId, _repairId);

        AddLogUpLoadInfo addLogUpLoadInfo = new AddLogUpLoadInfo();
        addLogUpLoadInfo.setActivity(mActivityInstance);
        addLogUpLoadInfo.setWhat(ConstantApi.WHAT_UPDATEREPAIRBYID_URL);//请求数字标识
        addLogUpLoadInfo.setUrlPath(ApiService.updateRepairById_url);//url地址
        addLogUpLoadInfo.setRequestMethod(ConstantSign.REQUEST_METHOD_POST);//POST 或者 GET
        addLogUpLoadInfo.setToastToUser(true);//展示给用户的标志
        addLogUpLoadInfo.setHashMapParameter(map);

        NetworkManager.getInstance().initRetrofitRxJava()
                .create(ApiService.class)
                .updateRepairById(RequestBody.create(JSON.toJSONString(map, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue),
                        MediaType.parse(ApiService.HEADER_JSON)))
                .compose(RepairdDetailActivity.this.bindUntilEvent(ActivityEvent.DESTROY))
                .compose(new ResponseTransformer<>(addLogUpLoadInfo, new ApiRequestSubListener<String>() {
                    @Override
                    public void handlerSomeThingNotSuccessDataForItSelf(int what_method, String serverCode, String serverMessage) {
                        super.handlerSomeThingNotSuccessDataForItSelf(what_method, serverCode, serverMessage);
                        //
                    }
                })).subscribe(new Consumer<String>() {
                    @Override
                    public void accept(String stringValue) throws Throwable {

                        //TipDialog.show(StringUtils.getString(R.string.add_submit_success), WaitDialog.TYPE.SUCCESS);

                        EventBus.getDefault().post(new EventRepair(ExtraValue.EVENTBUS_REPAIRCANCEL));

                        //通知主页列表刷新
                        methodSubmitSuccess(mActivityInstance, new DoSomeThingListener() {
                            @Override
                            public void doSomeThing() {
                                //取消完毕，关闭页面，刷新报修历史记录，更新状态
                                methodBack();
                            }
                        });

                    }
                }, new ErrorConsumer() {

                    @Override
                    protected void error(ApiException apiException) {

                        if (apiException != null) {
                            if (!TextUtils.isEmpty(apiException.getDisplayMessage())) {
                                ToastUtils.showShort(apiException.getDisplayMessage());
                            }
                        }

                    }
                });

    }


    @Override
    protected void methodBack() {
        methodBackFinish();
    }

    @Override
    public void processExtraData() {

        //use the data received here

        Bundle bundle = getIntent().getExtras();

        if (bundle != null) {

            //2021-7-22 15:23:50 标记是从哪里过来的，如果是从统计过来的，那么所有的按钮都弄成灰色不可点击的
            jumpFromFlag = bundle.getInt(ExtraKey.EXTRA_JUMPFROM_WHERE);

            //携带状态报修的，判定取消按钮是否展示。应该是有的可以展示。
            //retain
            repairIdPass = bundle.getString(ExtraKey.EXTRA_REPAIR_REPAIRID);

        }

    }
}